<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //1.为什么需要Promise
        //需求：延迟2秒输出1，之后延迟1秒输出2，之后延迟1秒输出3

        // setTimeout(()=>{
        //     console.log('setTimeout')
        // },3000)

        // setTimeout(()=>{
        //     console.log(1)
        // },2000)

        // setTimeout(()=>{
        //     console.log(2)
        // },1000)

        // setTimeout(()=>{
        //     console.log(3)
        // },1000)
        //上述代码执行结果是2，3,1是异步执行的

        //同步代码：串行执行，前面的代码先执行，后面的代码后执行
        //异步代码：并行执行，大家同时开始执行，后面的代码不会等待前面代码执行完毕才执行

        //回掉地狱：回调函数的嵌套

        //从外向内执行，串行执行
        setTimeout(()=>{
            console.log(1)
            setTimeout(()=>{
                console.log(2)
                setTimeout(()=>{
                    console.log(3)
                },1000)
            },1000)
        },2000)
    </script>
</body>
</html>